/**
 * class OBJECT
 * ------------
 * ->handles and updates all objects within the game
 *
 * @virtual void CreateObject(const int changeId) - sets stats
 * @virtual void CreateImage(const int changeId) - sets an image
 * @virtual void Update() - draws image to screen based on position
 * @virtual void UpdatePlayerStats( void ) - updates player stats, used for only one object!
 *
 */
class OBJECT 
{
  public:
	  //public properties
	  int position;
	  float Xposition;
	  float Yposition;
	  const char * name;
	  const char * info;
	  const char * info2;
	  const char * info3;
	  const char * info4;
	  bool quit;

	  //public behaviors
	  virtual void CreateObject(const int changeId);
	  virtual void CreateImage(const int changeId);
	  virtual void Update(int config, bool IsEnemy);
	  virtual void UpdatePlayerStats( void );
	  virtual void UpdateEnemy();
	  OBJECT();
	  ~OBJECT();

  private:

	  //private properties
	  short id;
	  float speed;
	  int health;
	  int maxHealth;
	  int attack;
	  int reward;
	  bool touchingGround;
	  bool colliding;
	  float sy;
	  short xp;
	  short maxXp;
	  short manip;
	  TEXTURE _still1;
	  TEXTURE _still2;
	  TEXTURE _still3;
	  TEXTURE _hurt;
	  TEXTURE _right;
	  TEXTURE _left;

	  IMAGE * still1;
	  IMAGE * still2;
	  IMAGE * still3;
	  IMAGE * hurt;
	  IMAGE * right;
	  IMAGE * left;

}player, enemy, display;

/* fighter id values  */
#define DOSBATCH_GUY 1
#define BASH_GUY 2
#define DCL_GUY 3
#define BASIC_GUY 4
#define SMALLTALK_GUY 5
#define VISUALBASIC_GUY 6
#define PASCAL_GUY 7
#define RUBYONRAILS_GUY 8
#define LUA_GUY 9
#define PYTHON_GUY 10
#define C_GUY 11
#define OBJECTIVEC_GUY 12
#define JAVA_GUY 13
#define CSHARP_GUY 14
#define NASM_GUY 15
#define CPLUSPLUS_GUY 16

/* info on each fighter */
#define DOSBATCH_INFO    (char*)"Standard CLI/batch language"
#define DOSBATCH_INFO2   (char*)"for IBM PC running DR-DOS,"
#define DOSBATCH_INFO3   (char*)"MS-DOS or PC-DOS before"
#define DOSBATCH_INFO4   (char*)"Windows."
#define BASH_INFO        (char*)"A cross-platform Unix shell"
#define BASH_INFO2       (char*)"replacement for the Bourne"
#define BASH_INFO3       (char*)"shell (sh)."
#define BASH_INFO4       (char*)""
#define DCL_INFO         (char*)"DCL (Digital Command Language)"
#define DCL_INFO2        (char*)"is the standard language for VMS"
#define DCL_INFO3        (char*)"computer server operating systems."
#define DCL_INFO4        (char*)""
#define BASIC_INFO       (char*)"A group of general purpose"
#define BASIC_INFO2      (char*)"high level programming"
#define BASIC_INFO3      (char*)"languages."
#define BASIC_INFO4      (char*)""
#define SMALLTALK_INFO   (char*)"An object-orientated and"
#define SMALLTALK_INFO2  (char*)"dynamically typed language"
#define SMALLTALK_INFO3  (char*)"that help shape many future"
#define SMALLTALK_INFO4  (char*)"programming languages."
#define VISUALBASIC_INFO (char*)"A third-generation"
#define VISUALBASIC_INFO2 (char*)"event-driven programming"
#define VISUALBASIC_INFO3 (char*)"language normally used"
#define VISUALBASIC_INFO4 (char*)"with an IDE (usually a beginner's choice)."
#define PASCAL_INFO      (char*)"A very influential and"
#define PASCAL_INFO2     (char*)"procedural-based programming"
#define PASCAL_INFO3     (char*)"laguage."
#define PASCAL_INFO4     (char*)""
#define RUBYONRAILS_INFO (char*)"An open-source, full stack"
#define RUBYONRAILS_INFO2 (char*)"web application framework"
#define RUBYONRAILS_INFO3 (char*)"for the ruby language."
#define RUBYONRAILS_INFO4 (char*)""
#define LUA_INFO         (char*)"A lightweight, multi-paradigm"
#define LUA_INFO2        (char*)"programming lanugage that is"
#define LUA_INFO3        (char*)"generally simpler to learn."
#define LUA_INFO4        (char*)""
#define PYTHON_INFO      (char*)"A general purpose high-level"
#define PYTHON_INFO2     (char*)"programming language which is"
#define PYTHON_INFO3     (char*)"based off of code readability."
#define PYTHON_INFO4     (char*)""
#define C_INFO           (char*)"A powerful general purpose"
#define C_INFO2          (char*)"and procedural programming"
#define C_INFO3          (char*)"language Created in the 1970's."
#define C_INFO4          (char*)""
#define OBJECTIVEC_INFO  (char*)"A powerful reflective"
#define OBJECTIVEC_INFO2 (char*)"object-orientated programming"
#define OBJECTIVEC_INFO3 (char*)"language that adds smalltalk"
#define OBJECTIVEC_INFO4 (char*)"style to the C language."
#define JAVA_INFO        (char*)"A powerful object-orientated"
#define JAVA_INFO2       (char*)"programming language aimed at"
#define JAVA_INFO3       (char*)"being machine independant."
#define JAVA_INFO4       (char*)""
#define CSHARP_INFO       (char*)"An evolution of C++/C combined"
#define CSHARP_INFO2      (char*)"with the .NET framework written"
#define CSHARP_INFO3      (char*)"by Microsoft."
#define CSHARP_INFO4      (char*)""
#define NASM_INFO        (char*)"NASM (netwide assembler) is"
#define NASM_INFO2       (char*)"an assembly language that is"
#define NASM_INFO3       (char*)"considered the most popular"
#define NASM_INFO4       (char*)"linux assembly language."
#define CPLUSPLUS_INFO   (char*)"Very powerful and is"
#define CPLUSPLUS_INFO2   (char*)"currently (2012) one of"
#define CPLUSPLUS_INFO3  (char*)"the most popular OOP"
#define CPLUSPLUS_INFO4  (char*)"languages."

#define GOING_RIGHT 0
#define GOING_LEFT 1
#define STILL 2
#define GROUND 350

///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
///////// OBJECT methods //////////////////////////////////

void OBJECT::UpdateEnemy()
{
	if((enemy.Xposition) < player.Xposition){
		Xposition += (0.5 + enemy.speed);
		position = GOING_RIGHT;
		speed += (float)0.003;
	}
	else if((enemy.Xposition) > player.Xposition){
		Xposition -= (0.5 + enemy.speed);
		position = GOING_LEFT;
		speed += (float)0.002;
	}

	else{ speed = 0; position = STILL; }

	if(enemy.health <= 0) {round++; levelStarted = false;}

	return;
}

void OBJECT::UpdatePlayerStats( void )
{
	//jumping
    if(hge->Input_GetKeyState(HGEK_UP) && touchingGround) {
        sy -= 5;
        hge->Effect_PlayEx(jump, 100, 0, 1.0F, false);
    }

	//attacking
    if(hge->Input_GetKeyState(HGEK_SPACE) && touchingGround && colliding) {
        enemy.health -= attack;
        hge->Effect_PlayEx(punch1, 100, 0, 1.0F, false);
		colliding = false;
		enemy.speed = (float)-200;
    }

	//moving left
	if (hge->Input_GetKeyState(HGEK_LEFT) && Xposition >= ((float)-130)) {
		 player.Xposition -= (1 + player.speed);
		 player.position = GOING_LEFT;
		 player.speed += (float)0.004;
	 }
	 
	 //moving right
	 else if (hge->Input_GetKeyState(HGEK_RIGHT) && Xposition <= ((float) 750)){
		 player.Xposition += (1 + player.speed);
		 player.position = GOING_RIGHT;
		 player.speed += (float)0.007;
	 }

	 //reset position if no key was pressed
	 else {player.position = STILL; player.speed = 0;}

	 //print player stats
	 fnt->SetColor(BLACK);
	 fnt->printf(15, 5, HGETEXT_LEFT, "LEVEL: %d", round);
	 fnt->printf((Xposition + 100), (Yposition - 60), HGETEXT_CENTER, "PLAYER");

	return;
}

void OBJECT::Update(int config = 1, bool IsEnemy = false)
{
	//test collisions...
	if(IsEnemy){
		if(enemy.position == player.Xposition)enemy.colliding = true;
	}

	else {
		if(enemy.colliding) player.colliding = true;
	}

	if(config == 1)
	{
	  //set color for health
	  int testHealth = 0;
	  testHealth = (maxHealth/2);
	  if(health <= testHealth)fnt->SetColor(YELLOW);
	  else if(health >= testHealth)fnt->SetColor(GREEN);
	  testHealth = (maxHealth/4);
	  if(health <= testHealth)fnt->SetColor(RED);
	
	  //print health to screen
	  fnt->printf((Xposition + 100), (Yposition - 20), HGETEXT_CENTER, "%d/%d", health, maxHealth);
	}

	/* draw character based on position and timing */
	if(position == GOING_LEFT)left->Render(Xposition, Yposition);
	else if(position == GOING_RIGHT)right->Render(Xposition, Yposition); 
	else if(position == STILL)
	{
		manip++;
		if(manip < 30) still1->Render(Xposition, Yposition);
		else if(manip >= 30 && manip < 60) still2->Render(Xposition, Yposition);
		else if(manip >= 60 && manip < 90) still3->Render(Xposition, Yposition);
		else if(manip >= 90 && manip < 120) still2->Render(Xposition, Yposition);
		else {manip = 0; still1->Render(Xposition, Yposition);}
		 
	}

	//apply gravity
    if(Yposition != GROUND){touchingGround = false; sy += (float)0.3;}
    if(Yposition > GROUND){Yposition = GROUND; sy = 0;}
    else if(Yposition == GROUND) touchingGround = true;
    Yposition+=sy;

	return;
}

/* set stats based on @param int changeId */
void OBJECT::CreateImage(const int changeId)
{
	//free memory
	if(_still1 != NULL) hge->Texture_Free(_still1);
	if(_still2 != NULL) hge->Texture_Free(_still2);
	if(_still3 != NULL) hge->Texture_Free(_still3);
	if(_right != NULL) hge->Texture_Free(_right);
	if(_left != NULL) hge->Texture_Free(_left);
	if(_hurt != NULL) hge->Texture_Free(_hurt);
	if(right != NULL) delete right;
	if(left != NULL) delete left;
	if(still1 != NULL) delete still1;
	if(still2 != NULL) delete still2;
	if(still3 != NULL) delete still3;

	if(changeId == DOSBATCH_GUY){
		_still1=hge->Texture_Load("resource/DOSBATCH GUY/1.png");
		_still2=hge->Texture_Load("resource/DOSBATCH GUY/2.png");
		_still3=hge->Texture_Load("resource/DOSBATCH GUY/3.png");
		_right=hge->Texture_Load("resource/DOSBATCH GUY/right.png");
		_left=hge->Texture_Load("resource/DOSBATCH GUY/left.png");
		_hurt=hge->Texture_Load("resource/DOSBATCH GUY/hurt.png");
	}
	else if(changeId == BASH_GUY){
		_still1=hge->Texture_Load("resource/BASH GUY/1.png");
		_still2=hge->Texture_Load("resource/BASH GUY/2.png");
		_still3=hge->Texture_Load("resource/BASH GUY/3.png");
		_right=hge->Texture_Load("resource/BASH GUY/right.png");
		_left=hge->Texture_Load("resource/BASH GUY/left.png");
		_hurt=hge->Texture_Load("resource/BASH GUY/hurt.png");

	}
	else if(changeId == DCL_GUY){
		_still1=hge->Texture_Load("resource/DCL GUY/1.png");
		_still2=hge->Texture_Load("resource/DCL GUY/2.png");
		_still3=hge->Texture_Load("resource/DCL GUY/3.png");
		_right=hge->Texture_Load("resource/DCL GUY/right.png");
		_left=hge->Texture_Load("resource/DCL GUY/left.png");
		_hurt=hge->Texture_Load("resource/DCL GUY/hurt.png");

	}
	else if(changeId == BASIC_GUY){
		_still1=hge->Texture_Load("resource/BASIC GUY/1.png");
		_still2=hge->Texture_Load("resource/BASIC GUY/2.png");
		_still3=hge->Texture_Load("resource/BASIC GUY/3.png");
		_right=hge->Texture_Load("resource/BASIC GUY/right.png");
		_left=hge->Texture_Load("resource/BASIC GUY/left.png");
		_hurt=hge->Texture_Load("resource/BASIC GUY/hurt.png");

	}
	else if(changeId == SMALLTALK_GUY){
		_still1=hge->Texture_Load("resource/SMALLTALK GUY/1.png");
		_still2=hge->Texture_Load("resource/SMALLTALK GUY/2.png");
		_still3=hge->Texture_Load("resource/SMALLTALK GUY/3.png");
		_right=hge->Texture_Load("resource/SMALLTALK GUY/right.png");
		_left=hge->Texture_Load("resource/SMALLTALK GUY/left.png");
		_hurt=hge->Texture_Load("resource/SMALLTALK GUY/hurt.png");
	}
	else if(changeId == VISUALBASIC_GUY){
		_still1=hge->Texture_Load("resource/VISUALBASIC GUY/1.png");
		_still2=hge->Texture_Load("resource/VISUALBASIC GUY/2.png");
		_still3=hge->Texture_Load("resource/VISUALBASIC GUY/3.png");
		_right=hge->Texture_Load("resource/VISUALBASIC GUY/right.png");
		_left=hge->Texture_Load("resource/VISUALBASIC GUY/left.png");
		_hurt=hge->Texture_Load("resource/VISUALBASIC GUY/hurt.png");
	}
	else if(changeId == PASCAL_GUY){
		_still1=hge->Texture_Load("resource/PASCAL GUY/1.png");
		_still2=hge->Texture_Load("resource/PASCAL GUY/2.png");
		_still3=hge->Texture_Load("resource/PASCAL GUY/3.png");
		_right=hge->Texture_Load("resource/PASCAL GUY/right.png");
		_left=hge->Texture_Load("resource/PASCAL GUY/left.png");
		_hurt=hge->Texture_Load("resource/PASCAL GUY/hurt.png");
	}
	else if(changeId == RUBYONRAILS_GUY){
		_still1=hge->Texture_Load("resource/RUBYONRAILS GUY/1.png");
		_still2=hge->Texture_Load("resource/RUBYONRAILS GUY/2.png");
		_still3=hge->Texture_Load("resource/RUBYONRAILS GUY/3.png");
		_right=hge->Texture_Load("resource/RUBYONRAILS GUY/right.png");
		_left=hge->Texture_Load("resource/RUBYONRAILS GUY/left.png");
		_hurt=hge->Texture_Load("resource/RUBYONRAILS GUY/hurt.png");
	}
	else if(changeId == LUA_GUY){
		_still1=hge->Texture_Load("resource/LUA GUY/1.png");
		_still2=hge->Texture_Load("resource/LUA GUY/2.png");
		_still3=hge->Texture_Load("resource/LUA GUY/3.png");
		_right=hge->Texture_Load("resource/LUA GUY/right.png");
		_left=hge->Texture_Load("resource/LUA GUY/left.png");
		_hurt=hge->Texture_Load("resource/LUA GUY/hurt.png");
	}
	else if(changeId == PYTHON_GUY){
		_still1=hge->Texture_Load("resource/PYTHON GUY/1.png");
		_still2=hge->Texture_Load("resource/PYTHON GUY/2.png");
		_still3=hge->Texture_Load("resource/PYTHON GUY/3.png");
		_right=hge->Texture_Load("resource/PYTHON GUY/right.png");
		_left=hge->Texture_Load("resource/PYTHON GUY/left.png");
		_hurt=hge->Texture_Load("resource/PYTHON GUY/hurt.png");

	}
	else if(changeId == C_GUY){
		_still1=hge->Texture_Load("resource/C GUY/1.png");
		_still2=hge->Texture_Load("resource/C GUY/2.png");
		_still3=hge->Texture_Load("resource/C GUY/3.png");
		_right=hge->Texture_Load("resource/C GUY/right.png");
		_left=hge->Texture_Load("resource/C GUY/left.png");
		_hurt=hge->Texture_Load("resource/C GUY/hurt.png");
		
	}
	else if(changeId == OBJECTIVEC_GUY){
		_still1=hge->Texture_Load("resource/OBJECTIVEC GUY/1.png");
		_still2=hge->Texture_Load("resource/OBJECTIVEC GUY/2.png");
		_still3=hge->Texture_Load("resource/OBJECTIVEC GUY/3.png");
		_right=hge->Texture_Load("resource/OBJECTIVEC GUY/right.png");
		_left=hge->Texture_Load("resource/OBJECTIVEC GUY/left.png");
		_hurt=hge->Texture_Load("resource/OBJECTIVEC GUY/hurt.png");

	}
	else if(changeId == JAVA_GUY){
		_still1=hge->Texture_Load("resource/JAVA GUY/1.png");
		_still2=hge->Texture_Load("resource/JAVA GUY/2.png");
		_still3=hge->Texture_Load("resourceJAVA GUY/3.png");
		_right=hge->Texture_Load("resource/JAVA GUY/right.png");
		_left=hge->Texture_Load("resource/JAVA GUY/left.png");
		_hurt=hge->Texture_Load("resource/JAVA GUY/hurt.png");

	}
	else if(changeId == CSHARP_GUY){
		_still1=hge->Texture_Load("resource/C# GUY/1.png");
		_still2=hge->Texture_Load("resource/C# GUY/2.png");
		_still3=hge->Texture_Load("resource/C# GUY/3.png");
		_right=hge->Texture_Load("resource/C# GUY/right.png");
		_left=hge->Texture_Load("resource/C# GUY/left.png");
		_hurt=hge->Texture_Load("resource/C# GUY/hurt.png");

	}
	else if(changeId == NASM_GUY){
		_still1=hge->Texture_Load("resource/NASM GUY/1.png");
		_still2=hge->Texture_Load("resource/NASM GUY/2.png");
		_still3=hge->Texture_Load("resource/NASM GUY/3.png");
		_right=hge->Texture_Load("resource/NASM GUY/right.png");
		_left=hge->Texture_Load("resource/NASM GUY/left.png");
		_hurt=hge->Texture_Load("resource/NASM GUY/hurt.png");

	}
	else if(changeId == CPLUSPLUS_GUY){
		_still1=hge->Texture_Load("resource/C++ GUY/1.png");
		_still2=hge->Texture_Load("resource/C++ GUY/2.png");
		_still3=hge->Texture_Load("resource/C++ GUY/3.png");
		_right=hge->Texture_Load("resource/C++ GUY/right.png");
		_left=hge->Texture_Load("resource/C++ GUY/left.png");
		_hurt=hge->Texture_Load("resource/C++ GUY/hurt.png");
	}

	still1 = new hgeSprite(_still1, 0, 0, 193, 188);
	still2 = new hgeSprite(_still2, 0, 0, 193, 188);
	still3 = new hgeSprite(_still3, 0, 0, 193, 188);
	right = new hgeSprite(_right, 0, 0, 193, 188);
	left = new hgeSprite(_left, 0, 0, 193, 188);
	hurt =  new hgeSprite(_hurt, 0, 0, 193, 188);

	if(!left || !right || !still1 || !still2 || !still3 || !hurt){
		MessageBox(NULL, (LPCSTR)"ERROR LOADING IMAGE! SHUTTING DOWN!", (LPCSTR)"YOU FAIL XD", MB_OK | MB_ICONERROR | MB_APPLMODAL);
		hge->System_Shutdown();
		hge->Release();
		return;
	}

	return;
}

void OBJECT::CreateObject(const int changeId)
{
	/* set stats based on @param int changeId */

	if(changeId == DOSBATCH_GUY){
		health = 25;
		attack = 5;
	    reward = 20;
		name = (char*)"BATCH";
		info = DOSBATCH_INFO;
		info2 = DOSBATCH_INFO2;
		info3 = DOSBATCH_INFO3;
		info4 = DOSBATCH_INFO4;
	}
	else if(changeId == BASH_GUY){
		health = 28;
		attack = 5;
		reward = 21;
		name = (char*)"BASH";
		info = BASH_INFO;
		info2 = BASH_INFO2;
		info3 = BASH_INFO3;
		info4 = BASH_INFO4;
	}
	else if(changeId == DCL_GUY){
		health = 29;
		attack = 5;
		reward = 22;
		name = (char*)"DCL";
		info = DCL_INFO;
		info2 = DCL_INFO2;
		info3 = DCL_INFO3;
		info4 = DCL_INFO4;
	}
	else if(changeId == BASIC_GUY){
		health = 42;
		attack = 9;
		reward = 39;
		name = (char*)"BASIC";
		info = BASIC_INFO;
		info2 = BASIC_INFO2;
		info3 = BASIC_INFO3;
		info4 = BASIC_INFO4;
	}
	else if(changeId == SMALLTALK_GUY){
		health = 50;
		attack = 13;
		reward = 48;
		name = (char*)"SMALL TALK";
        info = SMALLTALK_INFO;
		info2 = SMALLTALK_INFO2;
		info3 = SMALLTALK_INFO3;
		info4 = SMALLTALK_INFO4;
	}
	else if(changeId == VISUALBASIC_GUY){
		health = 39;
		attack = 16;
		reward = 45;
		name = (char*)"VISUAL BASIC";
		info = VISUALBASIC_INFO;
		info2 = VISUALBASIC_INFO2;
		info3 = VISUALBASIC_INFO3;
		info4 = VISUALBASIC_INFO4;
	}
	else if(changeId == PASCAL_GUY){
		health = 54;
		attack = 18;
		reward = 65;
		name = (char*)"PASCAL";
		info = PASCAL_INFO;
		info2 = PASCAL_INFO2;
		info3 = PASCAL_INFO3;
		info4 = PASCAL_INFO4;
	}
	else if(changeId == RUBYONRAILS_GUY){
		health = 56;
		attack = 17;
		reward = 66;
		name = (char*)"RUBY ON RAILS";
		info = RUBYONRAILS_INFO;
		info2 = RUBYONRAILS_INFO2;
		info3 = RUBYONRAILS_INFO3;
		info4 = RUBYONRAILS_INFO4;
	}
	else if(changeId == LUA_GUY){
	    health = 41;
		attack = 24;
		reward = 79;
		name = (char*)"LUA";
		info = LUA_INFO;
		info2 = LUA_INFO2;
		info3 = LUA_INFO3;
		info4 = LUA_INFO4;
	}
	else if(changeId == PYTHON_GUY){
		health = 70;
		attack = 20;
		reward = 100;
		name = (char*)"PYTHON";
		info = PYTHON_INFO;
		info2 = PYTHON_INFO2;
		info3 = PYTHON_INFO3;
		info4 = PYTHON_INFO4;
	}
	else if(changeId == C_GUY){
		health = 120;
		attack = 26;
		reward = 150;
		name = (char*)"C";
		info = C_INFO;
		info2 = C_INFO2;
		info3 = C_INFO3;
		info4 = C_INFO4;
	}
	else if(changeId == OBJECTIVEC_GUY){
		health = 172;
		attack = 30;
		reward = 180;
		name = (char*)"OBJECTIVE-C";
		info = OBJECTIVEC_INFO;
		info2 = OBJECTIVEC_INFO2;
		info3 = OBJECTIVEC_INFO3;
		info4 = OBJECTIVEC_INFO4;
	}
	else if(changeId == JAVA_GUY){
		health = 180;
		attack = 28;
		reward = 182;
		name = (char*)"JAVA";
		info = JAVA_INFO;
		info2 = JAVA_INFO2;
		info3 = JAVA_INFO3;
		info4 = JAVA_INFO4;
	}
	else if(changeId == CSHARP_GUY){
		health = 200;
		attack = 31;
		reward = 210;;
		name = (char*)"C#";
		info = CSHARP_INFO;
		info2 = CSHARP_INFO2;
		info3 = CSHARP_INFO3;
		info4 = CSHARP_INFO4;
	}
	else if(changeId == NASM_GUY){
		health = 878;
		attack = 2;
		reward = 300;
		name = (char*)"NASM";
		info = NASM_INFO;
		info2 = NASM_INFO2;
		info3 = NASM_INFO3;
		info4 = NASM_INFO4;
	}
	else if(changeId == CPLUSPLUS_GUY){
		health = 700;
		attack = 40;
		reward = 525;
		name = (char*)"C++";
		info = CPLUSPLUS_INFO;
		info2 = CPLUSPLUS_INFO2;
		info3 = CPLUSPLUS_INFO3;
		info4 = CPLUSPLUS_INFO4;
	}
	else
		name = (char*)"ERROR";

    maxHealth = health;

	return;
}

OBJECT::OBJECT()
{
	quit = false;
	position = STILL;
	Xposition = 25;
	Yposition = GROUND;
	health = 1;
	attack = 1;
	speed = (float)0.1;
	id = DOSBATCH_GUY;
	reward = 0;
	name = (char*)"-- --";
	colliding = false;

	return;
}

OBJECT::~OBJECT()
{
	delete right;
	delete left;
	delete still1;
	delete still2;
	delete still3;
	hge->Texture_Free(_still1);
	hge->Texture_Free(_still2);
	hge->Texture_Free(_still3);
	hge->Texture_Free(_right);
	hge->Texture_Free(_left);
	hge->Texture_Free(_hurt);

	return;
}
